home *** CD-ROM | disk | FTP | other *** search
/ Aminet 1 (Walnut Creek) / Aminet - June 1993 [Walnut Creek].iso / aminet / gfx / pbm / amigasrc.lzh / amiga.diff next >
Text File  |  1992-03-26  |  34KB  |  1,140 lines

  1. diff -bBcr pbmplus10dec91/pbm/atktopbm.c pbmamiga/pbm/atktopbm.c
  2. *** pbmplus10dec91/pbm/atktopbm.c       Wed Dec 11 01:53:16 1991
  3. --- pbmamiga/pbm/atktopbm.c     Tue Feb 18 04:47:08 1992
  4. ***************
  5. *** 14,20 ****
  6. --- 14,27 ----
  7.   #include <sys/types.h>
  8.   #include "pbm.h"
  9.  
  10. + #ifndef A_FORCEPROTO
  11.   void ReadATKRaster();
  12. + #else /* A_FORCEPROTO */
  13. + void ReadATKRaster( FILE *file, int *rwidth, int *rheight,
  14. +                     unsigned char **destaddr );
  15. + static long ReadRow( register FILE *file, register unsigned char *row,
  16. +                      register long length );
  17. + #endif /* A_FORCEPROTO */
  18.  
  19.   void
  20.   main( argc, argv )
  21. diff -bBcr pbmplus10dec91/pbm/g3topbm.c pbmamiga/pbm/g3topbm.c
  22. *** pbmplus10dec91/pbm/g3topbm.c        Wed Dec 11 01:52:10 1991
  23. --- pbmamiga/pbm/g3topbm.c      Tue Jan 28 18:33:48 1992
  24. ***************
  25. *** 41,46 ****
  26. --- 41,50 ----
  27.   static void skiptoeol ARGS(( FILE* file ));
  28.   static int rawgetbit ARGS(( FILE* file ));
  29.  
  30. + #ifdef A_SMALLSTACK
  31. + static bit* bits[MAXROWS];
  32. + #endif /* A_SMALLSTACK */
  33. +
  34.   void
  35.   main( argc, argv )
  36.       int argc;
  37. ***************
  38. *** 48,54 ****
  39. --- 52,60 ----
  40.       {
  41.       FILE* ifp;
  42.       int argn, rows, cols, row, col, i;
  43. + #ifndef A_SMALLSTACK
  44.       bit* bits[MAXROWS];
  45. + #endif /* A_SMALLSTACK */
  46.       char* usage = "[-kludge][-reversebits][-stretch] [g3file]";
  47.  
  48.       pbm_init( &argc, argv );
  49. diff -bBcr pbmplus10dec91/pbm/libpbm1.c pbmamiga/pbm/libpbm1.c
  50. *** pbmplus10dec91/pbm/libpbm1.c        Wed Dec 11 01:52:44 1991
  51. --- pbmamiga/pbm/libpbm1.c      Thu Mar 26 10:29:18 1992
  52. ***************
  53. *** 50,55 ****
  54. --- 50,56 ----
  55.       }
  56.  
  57.  
  58. + #ifndef A_FRAGARRAY
  59.   char**
  60.   pm_allocarray( cols, rows, size )
  61.       int cols, rows;
  62. ***************
  63. *** 77,82 ****
  64. --- 78,121 ----
  65.       free( its[0] );
  66.       free( its );
  67.       }
  68. + #else /* A_FRAGARRAY */
  69. + char**
  70. + pm_allocarray( cols, rows, size )
  71. +     int cols, rows;
  72. +     int size;
  73. +     {
  74. +     char** its;
  75. +     int i;
  76. +
  77. +     its = (char**) malloc( (rows + 1) * sizeof(char*) );
  78. +     if ( its == (char**) 0 )
  79. +         pm_error( "out of memory allocating an array" );
  80. +
  81. +     its[rows] = its[0] = (char*) malloc( rows * cols * size );
  82. +     if ( its[0] != (char*) 0 )
  83. +         for ( i = 1; i < rows; ++i )
  84. +             its[i] = &(its[0][i * cols * size]);
  85. +     else
  86. +         for( i = 0; i < rows; ++i )
  87. +             its[i] = pm_allocrow( cols, size );
  88. +     return its;
  89. +     }
  90. +
  91. + void
  92. + pm_freearray( its, rows )
  93. +     char** its;
  94. +     int rows;
  95. +     {
  96. +     int i;
  97. +
  98. +     if( its[rows] != (char*) 0 )
  99. +         free( its[rows] );
  100. +     else
  101. +         for( i = 0; i < rows; ++i )
  102. +             pm_freerow( its[i] );
  103. +     free( its );
  104. +     }
  105. + #endif /* A_FRAGARRAY */
  106.  
  107.  
  108.   /* Case-insensitive keyword matcher. */
  109. ***************
  110. *** 172,177 ****
  111. --- 211,219 ----
  112.       char* argv[];
  113.       {
  114.       int argn, i;
  115. + #ifdef A_RGBENV
  116. +     char *rgbdef;
  117. + #endif /* A_RGBENV */
  118.  
  119.       /* Extract program name. */
  120.       progname = rindex( argv[0], '/');
  121. ***************
  122. *** 200,205 ****
  123. --- 242,250 ----
  124.   #ifdef MSDOS
  125.               pm_message( "MSDOS defined" );
  126.   #endif /*MSDOS*/
  127. + #ifdef AMIGA
  128. +             pm_message( "AMIGA defined" );
  129. + #endif /* AMIGA */
  130.   #ifdef PBMPLUS_RAWBITS
  131.               pm_message( "PBMPLUS_RAWBITS defined" );
  132.   #endif /*PBMPLUS_RAWBITS*/
  133. ***************
  134. *** 225,231 ****
  135. --- 270,283 ----
  136.               pm_message( "NEED_VFPRINTF2 defined" );
  137.   #endif /*NEED_VFPRINTF2*/
  138.   #ifdef RGB_DB
  139. + #ifndef A_RGBENV
  140.               pm_message( "RGB_DB=\"%s\"", RGB_DB );
  141. + #else /* A_RGBENV */
  142. +             if( rgbdef = getenv(RGB_DB) )
  143. +                 pm_message( "RGB_DB= Env-var %s (set to \"%s\")", RGB_DB, rgbdef );
  144. +             else
  145. +                 pm_message( "RGB_DB= Env-var %s (unset)", RGB_DB );
  146. + #endif /* A_RGBENV */
  147.   #endif /*RGB_DB*/
  148.   #ifdef LIBTIFF
  149.               pm_message( "LIBTIFF defined" );
  150. ***************
  151. *** 263,273 ****
  152. --- 315,331 ----
  153.   pm_perror( reason )
  154.       char* reason;
  155.       {
  156. + #ifndef A_STRERROR
  157.       extern char* sys_errlist[];
  158. + #endif /* A_STRERROR */
  159.       extern int errno;
  160.       char* e;
  161.  
  162. + #ifdef A_STRERROR
  163. +     e = strerror(errno);
  164. + #else /* A_STRERROR */
  165.       e = sys_errlist[errno];
  166. + #endif /* A_STRERROR */
  167.  
  168.       if ( reason != 0 && reason[0] != '\0' )
  169.           pm_error( "%s - %s", reason, e );
  170. diff -bBcr pbmplus10dec91/pbm/libpbm2.c pbmamiga/pbm/libpbm2.c
  171. *** pbmplus10dec91/pbm/libpbm2.c        Wed Dec 11 01:52:46 1991
  172. --- pbmamiga/pbm/libpbm2.c      Tue Feb 18 04:05:12 1992
  173. ***************
  174. *** 13,18 ****
  175. --- 13,22 ----
  176.   #include "pbm.h"
  177.   #include "libpbm.h"
  178.  
  179. + #ifdef A_FORCEPROTO
  180. + static bit pbm_getbit( FILE * );
  181. + #endif /* A_FORCEPROTO */
  182. +
  183.   static bit
  184.   pbm_getbit( file )
  185.       FILE* file;
  186. diff -bBcr pbmplus10dec91/pbm/libpbm3.c pbmamiga/pbm/libpbm3.c
  187. *** pbmplus10dec91/pbm/libpbm3.c        Wed Dec 11 01:52:46 1991
  188. --- pbmamiga/pbm/libpbm3.c      Tue Feb 18 04:10:04 1992
  189. ***************
  190. *** 13,18 ****
  191. --- 13,25 ----
  192.   #include "pbm.h"
  193.   #include "libpbm.h"
  194.  
  195. + #ifdef A_FORCEPROTO
  196. + static void pbm_writepbmrowplain( FILE* file, bit* bitrow, int cols );
  197. + #ifdef PBMPLUS_RAWBITS
  198. + static void pbm_writepbmrowraw( FILE* file, bit* bitrow, int cols );
  199. + #endif /* PBMPLUS_RAWBITS */
  200. + #endif /* A_FORCEPROTO */
  201. +
  202.   void
  203.   pbm_writepbminit( file, cols, rows, forceplain )
  204.       FILE* file;
  205. diff -bBcr pbmplus10dec91/pbm/macptopbm.c pbmamiga/pbm/macptopbm.c
  206. *** pbmplus10dec91/pbm/macptopbm.c      Wed Dec 11 01:52:00 1991
  207. --- pbmamiga/pbm/macptopbm.c    Tue Jan 28 18:33:44 1992
  208. ***************
  209. *** 15,20 ****
  210. --- 15,24 ----
  211.  
  212.   static void ReadMacPaintFile ARGS(( FILE* file, int extraskip, int* scanLineP, unsigned char Pic[MAX_LINES][BYTES_WIDE] ));
  213.  
  214. + #ifdef A_SMALLSTACK
  215. + static unsigned char Pic[MAX_LINES][BYTES_WIDE];
  216. + #endif /* A_SMALLSTACK */
  217. +
  218.   void
  219.   main( argc, argv )
  220.       int argc;
  221. ***************
  222. *** 21,27 ****
  223. --- 25,33 ----
  224.       char* argv[];
  225.       {
  226.       FILE* ifp;
  227. + #ifndef A_SMALLSTACK
  228.       unsigned char Pic[MAX_LINES][BYTES_WIDE];
  229. + #endif /* A_SMALLSTACK */
  230.       bit* bitrow;
  231.       int argn, extraskip, scanLine, rows, cols, row, bcol, i;
  232.       char* usage = "[-extraskip N] [macpfile]";
  233. diff -bBcr pbmplus10dec91/pbm/pbmtoatk.c pbmamiga/pbm/pbmtoatk.c
  234. *** pbmplus10dec91/pbm/pbmtoatk.c       Wed Dec 11 01:53:14 1991
  235. --- pbmamiga/pbm/pbmtoatk.c     Tue Feb 18 04:28:52 1992
  236. ***************
  237. *** 13,18 ****
  238. --- 13,24 ----
  239.   #include <stdio.h>
  240.   #include "pbm.h"
  241.  
  242. + #ifdef A_FORCEPROTO
  243. + int process_atk_byte( int *pcurcount, unsigned char *pcurbyte, FILE *file,
  244. +                       unsigned char newbyte, int eolflag );
  245. + int write_atk_bytes( FILE *file, unsigned char curbyte, unsigned int curcount );
  246. + #endif /* A_FORCEPROTO */
  247. +
  248.   #define DEFAULTSCALE (1<<16)
  249.   #define RASTERVERSION 2
  250.   #define TRUE            1
  251. diff -bBcr pbmplus10dec91/pbm/pbmtoplot.c pbmamiga/pbm/pbmtoplot.c
  252. *** pbmplus10dec91/pbm/pbmtoplot.c      Wed Dec 11 01:52:24 1991
  253. --- pbmamiga/pbm/pbmtoplot.c    Tue Feb 18 04:30:34 1992
  254. ***************
  255. *** 13,18 ****
  256. --- 13,22 ----
  257.   #include <stdio.h>
  258.   #include "pbm.h"
  259.  
  260. + #ifdef A_FORCEPROTO
  261. + static void puttwo( int i );
  262. + #endif /* A_FORCEPROTO */
  263. +
  264.   static void
  265.   puttwo( i )
  266.       int i;
  267. diff -bBcr pbmplus10dec91/pbm/pbmupc.c pbmamiga/pbm/pbmupc.c
  268. *** pbmplus10dec91/pbm/pbmupc.c Wed Dec 11 01:52:42 1991
  269. --- pbmamiga/pbm/pbmupc.c       Tue Feb 18 04:31:14 1992
  270. ***************
  271. *** 40,46 ****
  272. --- 40,48 ----
  273.       char* manufcode;
  274.       char* prodcode;
  275.       int sum, p, lc0, lc1, lc2, lc3, lc4, rc0, rc1, rc2, rc3, rc4;
  276. + #ifndef A_FORCEPROTO
  277.       void putdigit( );
  278. + #endif /* A_FORCEPROTO */
  279.       char* usage = "[-s1|-s2] <type> <manufac> <product>";
  280.  
  281.       pbm_init( &argc, argv );
  282. diff -bBcr pbmplus10dec91/pbmplus.h pbmamiga/pbmplus.h
  283. *** pbmplus10dec91/pbmplus.h    Wed Dec 11 01:53:28 1991
  284. --- pbmamiga/pbmplus.h  Thu Mar 26 10:34:42 1992
  285. ***************
  286. *** 20,34 ****
  287.   #if defined(USG) || defined(SVR4)
  288.   #define SYSV
  289.   #endif
  290. ! #if ! ( defined(BSD) || defined(SYSV) || defined(MSDOS) )
  291.   /* CONFIGURE: If your system is >= 4.2BSD, set the BSD option; if you're a
  292.   ** System V site, set the SYSV option; and if you're IBM-compatible, set
  293.   ** MSDOS.  If your compiler is ANSI C, you're probably better off setting
  294.   ** SYSV - all it affects is string handling.
  295.   */
  296. ! #define BSD
  297.   /* #define SYSV */
  298.   /* #define MSDOS */
  299.   #endif
  300.  
  301.   /* CONFIGURE: If you want to enable writing "raw" files, set this option.
  302. --- 20,35 ----
  303.   #if defined(USG) || defined(SVR4)
  304.   #define SYSV
  305.   #endif
  306. ! #if ! ( defined(BSD) || defined(SYSV) || defined(MSDOS) || defined(AMIGA) )
  307.   /* CONFIGURE: If your system is >= 4.2BSD, set the BSD option; if you're a
  308.   ** System V site, set the SYSV option; and if you're IBM-compatible, set
  309.   ** MSDOS.  If your compiler is ANSI C, you're probably better off setting
  310.   ** SYSV - all it affects is string handling.
  311.   */
  312. ! /* #define BSD */
  313.   /* #define SYSV */
  314.   /* #define MSDOS */
  315. + #define AMIGA
  316.   #endif
  317.  
  318.   /* CONFIGURE: If you want to enable writing "raw" files, set this option.
  319. ***************
  320. *** 67,73 ****
  321.   /* CONFIGURE: uncomment this to enable debugging checks. */
  322.   /* #define DEBUG */
  323.  
  324. ! #ifdef SYSV
  325.  
  326.   #include <string.h>
  327.   #define index(s,c) strchr(s,c)
  328. --- 68,81 ----
  329.   /* CONFIGURE: uncomment this to enable debugging checks. */
  330.   /* #define DEBUG */
  331.  
  332. ! /* CONFIGURE: For some compiler tricks it's necessary to prototype ALL
  333. ! ** function calls.  Make sure your includes provide prototypes for write()
  334. ! ** and other non-standard functions, or define them below.
  335. ! */
  336. ! #define A_FORCEPROTO
  337. !
  338. !
  339. ! #if ( defined(SYSV) || defined(AMIGA) )
  340.  
  341.   #include <string.h>
  342.   #define index(s,c) strchr(s,c)
  343. ***************
  344. *** 74,84 ****
  345. --- 82,94 ----
  346.   #define rindex(s,c) strrchr(s,c)
  347.   #define srandom(s) srand(s)
  348.   #define random rand
  349. + #ifndef _DCC    /* Amiga DICE Compiler */
  350.   #define bzero(dst,len) memset(dst,0,len)
  351.   #define bcopy(src,dst,len) memcpy(dst,src,len)
  352.   #define bcmp memcmp
  353.   extern void srand();
  354.   extern int rand();
  355. + #endif /* _DCC */
  356.  
  357.   #else /*SYSV*/
  358.  
  359. ***************
  360. *** 88,97 ****
  361. --- 98,113 ----
  362.  
  363.   #endif /*SYSV*/
  364.  
  365. + #ifndef A_FORCEPROTO
  366.   extern int atoi();
  367.   extern void exit();
  368.   extern long time();
  369.   extern int write();
  370. + #else /* A_FORCEPROTO */
  371. + #include <fcntl.h>
  372. + #include <time.h>
  373. + #include <stdlib.h>
  374. + #endif /* A_FORCEPROTO */
  375.  
  376.   /* CONFIGURE: On some systems, malloc.h doesn't declare these, so we have
  377.   ** to do it.  On other systems, for example HP/UX, it declares them
  378. ***************
  379. *** 99,108 ****
  380.   ** malloc.h at all.  A sad situation.  If you have compilation problems
  381.   ** that point here, feel free to tweak or remove these declarations.
  382.   */
  383. ! #include <malloc.h>
  384. ! extern char* malloc();
  385. ! extern char* realloc();
  386. ! extern char* calloc();
  387.  
  388.   /* CONFIGURE: Some systems don't have vfprintf(), which we need for the
  389.   ** error-reporting routines.  If you compile and get a link error about
  390. --- 115,124 ----
  391.   ** malloc.h at all.  A sad situation.  If you have compilation problems
  392.   ** that point here, feel free to tweak or remove these declarations.
  393.   */
  394. ! /* #include <malloc.h> */
  395. ! /* extern char* malloc(); */
  396. ! /* extern char* realloc(); */
  397. ! /* extern char* calloc(); */
  398.  
  399.   /* CONFIGURE: Some systems don't have vfprintf(), which we need for the
  400.   ** error-reporting routines.  If you compile and get a link error about
  401. ***************
  402. *** 115,120 ****
  403. --- 131,176 ----
  404.   /* #define NEED_VFPRINTF1 */
  405.   /* #define NEED_VFPRINTF2 */
  406.  
  407. + /* CONFIGURE: If you don't want a fixed path to a X11 color name file
  408. + ** compiled into PBMPlus, set this option.  Now RGB_DB (see Makefile)
  409. + ** defines the name of an environment-variable that holds the complete
  410. + ** path and name of this file.
  411. + */
  412. + #define A_RGBENV
  413. +
  414. + /* CONFIGURE: On some smaller systems it's not a good idea to put large
  415. + ** arrays on the stack.  With this option all large arrays are moved off
  416. + ** the stack into globals.
  417. + */
  418. + #define A_SMALLSTACK
  419. +
  420. + /* CONFIGURE: Set this option if your compiler uses strerror(errno)
  421. + ** instead of sys_errlist[errno] for error messages.
  422. + */
  423. + #define A_STRERROR
  424. +
  425. + /* CONFIGURE: On small systems without VM it is possible that there is
  426. + ** enough memory for a large array, but it is fragmented.  So the usual
  427. + ** malloc( all-in-one-big-chunk ) fails.  With this option, if the first
  428. + ** method fails, pm_allocarray() tries to allocate the array row by row.
  429. + */
  430. + #define A_FRAGARRAY
  431. +
  432. + /*
  433. + ** Some special things for the Amiga.
  434. + */
  435. + #ifdef AMIGA
  436. + #ifdef A_FORCEPROTO
  437. + #include <clib/exec_protos.h>
  438. + #endif /* A_FORCEPROTO */
  439. + #define getpid(x)   ((long)FindTask(NULL))
  440. + #ifdef _DCC /* Amiga DICE Compiler, dynamic stack variables */
  441. + long _stack_fudge = 16384;
  442. + long _stack_chunk = 32768;
  443. + #endif /* _DCC */
  444. + #endif /* AMIGA */
  445. +
  446. +
  447.   /* End of configurable definitions. */
  448.  
  449.  
  450. diff -bBcr pbmplus10dec91/pgm/libpgm2.c pbmamiga/pgm/libpgm2.c
  451. *** pbmplus10dec91/pgm/libpgm2.c        Wed Dec 11 01:53:36 1991
  452. --- pbmamiga/pgm/libpgm2.c      Tue Feb 18 05:04:08 1992
  453. ***************
  454. *** 13,18 ****
  455. --- 13,28 ----
  456.   #include "pgm.h"
  457.   #include "libpgm.h"
  458.  
  459. + #ifdef A_FORCEPROTO
  460. + static void putus( unsigned short n, FILE* file );
  461. + static void pgm_writepgmrowplain( FILE* file, gray* grayrow,
  462. +                                   int cols, gray maxval );
  463. + #ifdef PBMPLUS_RAWBITS
  464. + static void pgm_writepgmrowraw( FILE* file, gray* grayrow,
  465. +                                 int cols, gray maxval );
  466. + #endif /* PBMPLUS_RAWBITS */
  467. + #endif /* A_FORCEPROTO */
  468. +
  469.   #if __STDC__
  470.   void
  471.   pgm_writepgminit( FILE* file, int cols, int rows, gray maxval, int forceplain )
  472. diff -bBcr pbmplus10dec91/pgm/pgmcrater.c pbmamiga/pgm/pgmcrater.c
  473. *** pbmplus10dec91/pgm/pgmcrater.c      Wed Dec 11 01:54:00 1991
  474. --- pbmamiga/pgm/pgmcrater.c    Tue Feb 18 05:09:46 1992
  475. ***************
  476. *** 48,53 ****
  477. --- 48,58 ----
  478.   #include "pgm.h"
  479.   #include <math.h>
  480.  
  481. + #ifdef A_FORCEPROTO
  482. + static void gencraters(void);
  483. + static void initseed(void);
  484. + #endif /* A_FORCEPROTO */
  485. +
  486.   /* Definitions for obtaining random numbers. */
  487.  
  488.   #define Cast(low, high) ((low)+((high)-(low)) * ((random() & 0x7FFF) / arand))
  489. diff -bBcr pbmplus10dec91/pgm/pgmtexture.c pbmamiga/pgm/pgmtexture.c
  490. *** pbmplus10dec91/pgm/pgmtexture.c     Wed Dec 11 01:54:14 1991
  491. --- pbmamiga/pgm/pgmtexture.c   Tue Feb 18 05:22:52 1992
  492. ***************
  493. *** 65,77 ****
  494.   #define DOT fprintf(stderr,".")
  495.   #define SWAP(a,b) {y=(a);(a)=(b);(b)=y;}
  496.  
  497.   void results (), hessenberg (), mkbalanced (), reduction (), simplesrt ();
  498.   float f1_asm (), f2_contrast (), f3_corr (), f4_var (), f5_idm (),
  499.    f6_savg (), f7_svar (), f8_sentropy (), f9_entropy (), f10_dvar (),
  500.    f11_dentropy (), f12_icorr (), f13_icorr (), f14_maxcorr (), *vector (),
  501.    **matrix ();
  502.  
  503. -
  504.   void main (argc, argv)
  505.     int argc;
  506.     char *argv[];
  507. --- 65,100 ----
  508.   #define DOT fprintf(stderr,".")
  509.   #define SWAP(a,b) {y=(a);(a)=(b);(b)=y;}
  510.  
  511. + #ifndef A_FORCEPROTO
  512.   void results (), hessenberg (), mkbalanced (), reduction (), simplesrt ();
  513.   float f1_asm (), f2_contrast (), f3_corr (), f4_var (), f5_idm (),
  514.    f6_savg (), f7_svar (), f8_sentropy (), f9_entropy (), f10_dvar (),
  515.    f11_dentropy (), f12_icorr (), f13_icorr (), f14_maxcorr (), *vector (),
  516.    **matrix ();
  517. + #else /* A_FORCEPROTO */
  518. + float f1_asm( float **P, int Ng );
  519. + float f2_contrast( float **P, int Ng );
  520. + float f3_corr( float **P, int Ng );
  521. + float f4_var( float **P, int Ng );
  522. + float f5_idm( float **P, int Ng );
  523. + float f6_savg( float **P, int Ng );
  524. + float f7_svar( float **P, int Ng, float S );
  525. + float f8_sentropy( float **P, int Ng );
  526. + float f9_entropy( float **P, int Ng );
  527. + float f10_dvar( float **P, int Ng );
  528. + float f11_dentropy( float **P, int Ng );
  529. + float f12_icorr( float **P, int Ng );
  530. + float f13_icorr( float **P, int Ng );
  531. + float f14_maxcorr( float **P, int Ng );
  532. + float *vector( int nl, int nh );
  533. + float **matrix( int nrl, int nrh, int ncl, int nch );
  534. + void results( char *c, float *a );
  535. + void simplesrt( int n, float arr[] );
  536. + void mkbalanced( float **a, int n );
  537. + void reduction( float **a, int n );
  538. + void hessenberg( float **a, int n, float wr[], float wi[] );
  539. + #endif /* A_FORCEPROTO */
  540.  
  541.   void main (argc, argv)
  542.     int argc;
  543.     char *argv[];
  544. diff -bBcr pbmplus10dec91/pgm/rawtopgm.c pbmamiga/pgm/rawtopgm.c
  545. *** pbmplus10dec91/pgm/rawtopgm.c       Wed Dec 11 01:53:46 1991
  546. --- pbmamiga/pgm/rawtopgm.c     Tue Feb 18 05:08:16 1992
  547. ***************
  548. *** 25,31 ****
  549. --- 25,33 ----
  550.       register int col, val;
  551.       int rows, cols;
  552.       char* usage = "[-headerskip N] [-rowskip N] <width> <height> [rawfile]";
  553. + #ifndef A_FORCEPROTO
  554.       double atof();
  555. + #endif /* A_FORCEPROTO */
  556.  
  557.       pgm_init( &argc, argv );
  558.  
  559. diff -bBcr pbmplus10dec91/pnm/pnmflip.c pbmamiga/pnm/pnmflip.c
  560. *** pbmplus10dec91/pnm/pnmflip.c        Wed Dec 11 01:54:28 1991
  561. --- pbmamiga/pnm/pnmflip.c      Tue Feb 18 20:04:08 1992
  562. ***************
  563. *** 26,32 ****
  564. --- 26,34 ----
  565.       int a, b, c, d, e, f;
  566.       register int row, col, newrow, newcol;
  567.       xelval maxval;
  568. + #ifndef A_FORCEPROTO
  569.       void leftright(), topbottom(), transpose();
  570. + #endif /* A_FORCEPROTO */
  571.       char* usage = "[-leftright|-lr] [-topbottom|-tb] [-transpose|-xy]\n            [-rotate90|-r90|-ccw] [-rotate270|r270|-cw]\n            [-rotate180|-r180] [pnmfile]";
  572.  
  573.       pnm_init( &argc, argv );
  574. diff -bBcr pbmplus10dec91/ppm/libppm2.c pbmamiga/ppm/libppm2.c
  575. *** pbmplus10dec91/ppm/libppm2.c        Wed Dec 11 01:55:22 1991
  576. --- pbmamiga/ppm/libppm2.c      Tue Feb 18 06:16:18 1992
  577. ***************
  578. *** 13,18 ****
  579. --- 13,28 ----
  580.   #include "ppm.h"
  581.   #include "libppm.h"
  582.  
  583. + #ifdef A_FORCEPROTO
  584. + static void putus( unsigned short n, FILE* file );
  585. + static void ppm_writeppmrowplain( FILE* file, pixel* pixelrow, int cols,
  586. +                                   pixval maxval );
  587. + #ifdef PBMPLUS_RAWBITS
  588. + static void ppm_writeppmrowraw( FILE* file, pixel* pixelrow, int cols,
  589. +                                 pixval maxval );
  590. + #endif /* PBMPLUS_RAWBITS */
  591. + #endif /* A_FORCEPROTO */
  592. +
  593.   #if __STDC__
  594.   void
  595.   ppm_writeppminit( FILE* file, int cols, int rows, pixval maxval, int forceplain )
  596. diff -bBcr pbmplus10dec91/ppm/libppm4.c pbmamiga/ppm/libppm4.c
  597. *** pbmplus10dec91/ppm/libppm4.c        Wed Dec 11 01:55:24 1991
  598. --- pbmamiga/ppm/libppm4.c      Tue Feb 18 06:18:34 1992
  599. ***************
  600. *** 12,17 ****
  601. --- 12,22 ----
  602.  
  603.   #include "ppm.h"
  604.  
  605. + #ifdef A_FORCEPROTO
  606. + static void canonstr( char* str );
  607. + static long rgbnorm( long rgb, long lmaxval, int n, char* colorname );
  608. + #endif /* A_FORCEPROTO */
  609. +
  610.   static void
  611.   canonstr( str )
  612.       char* str;
  613. ***************
  614. *** 202,210 ****
  615. --- 207,225 ----
  616.           FILE* f;
  617.           char buf1[200], buf2[200];
  618.  
  619. + #ifndef A_RGBENV
  620.           (void) sprintf( buf1, "%s.txt", RGB_DB );
  621.           if ( ( f = fopen( buf1, "r" ) ) == NULL )
  622.               pm_error( "can't open color names database - reconfigure with correct RGBDEF" );
  623. + #else /* A_RGBENV */
  624. +         char *rgbdef;
  625. +         if( (rgbdef = getenv(RGB_DB))==NULL )
  626. +             pm_error( "can't get path to color names database - %s not set", RGB_DB );
  627. +
  628. +         if ( ( f = fopen( rgbdef, "r" ) ) == NULL )
  629. +             pm_error( "can't open color names database - set %s to correct path", RGB_DB );
  630. + #endif /* A_RGBDEF */
  631. +
  632.           canonstr( colorname );
  633.           while ( fgets( buf1, sizeof(buf1), f ) != NULL )
  634.               {
  635. ***************
  636. *** 257,262 ****
  637. --- 272,280 ----
  638.       int this_r, this_g, this_b;
  639.       int best_diff, this_diff;
  640.       char this_colorname[200];
  641. + #ifdef A_RGBENV
  642. +     char *rgbdef;
  643. + #endif /* A_RGBENV */
  644.   #endif /*RGB_DB*/
  645.  
  646.       if ( maxval == 255 )
  647. ***************
  648. *** 273,281 ****
  649. --- 291,308 ----
  650.           }
  651.  
  652.   #ifdef RGB_DB
  653. + #ifndef A_RGBENV
  654.       (void) sprintf( buf, "%s.txt", RGB_DB );
  655.       if ( ( f = fopen( buf, "r" ) ) == NULL )
  656.           pm_error( "can't open color names database - reconfigure with correct RGBDEF" );
  657. + #else /* A_RGBENV */
  658. +     if( (rgbdef = getenv(RGB_DB))==NULL )
  659. +         pm_error( "can't get path to color names database - %s not set", RGB_DB );
  660. +
  661. +     if ( ( f = fopen( rgbdef, "r" ) ) == NULL )
  662. +         pm_error( "can't open color names database - set %s to correct path", RGB_DB );
  663. + #endif /* A_RGBDEF */
  664. +
  665.       best_diff = 32767;
  666.       while ( fgets( buf, sizeof(buf), f ) != NULL )
  667.           {
  668. diff -bBcr pbmplus10dec91/ppm/libppm5.c pbmamiga/ppm/libppm5.c
  669. *** pbmplus10dec91/ppm/libppm5.c        Wed Dec 11 01:55:26 1991
  670. --- pbmamiga/ppm/libppm5.c      Tue Feb 18 06:31:38 1992
  671. ***************
  672. *** 17,22 ****
  673. --- 17,26 ----
  674.  
  675.   #define DDA_SCALE 8192
  676.  
  677. + #ifdef A_FORCEPROTO
  678. + int ppmd_setlineclip( int clip );
  679. + #endif /* A_FORCEPROTO */
  680. +
  681.   #if __STDC__
  682.   void
  683.   ppmd_point_drawproc( pixel** pixels, int cols, int rows, pixval maxval, int x, int y, char* clientdata )
  684. ***************
  685. *** 546,551 ****
  686. --- 550,559 ----
  687.       ++(fh->n);
  688.       }
  689.  
  690. + #ifdef A_FORCEPROTO
  691. + static int yx_compare( coord* c1, coord* c2 );
  692. + #endif /* A_FORCEPROTO */
  693. +
  694.   static int
  695.   yx_compare( c1, c2 )
  696.       coord* c1;
  697. diff -bBcr pbmplus10dec91/ppm/pi1toppm.c pbmamiga/ppm/pi1toppm.c
  698. *** pbmplus10dec91/ppm/pi1toppm.c       Wed Dec 11 01:56:14 1991
  699. --- pbmamiga/ppm/pi1toppm.c     Tue Jan 28 18:32:52 1992
  700. ***************
  701. *** 16,21 ****
  702. --- 16,25 ----
  703.   #define COLS 320
  704.   #define MAXVAL 7
  705.  
  706. + #ifdef A_SMALLSTACK
  707. + static short screen[ROWS*COLS/4];          /* simulates the Atari's video RAM */
  708. + #endif /* A_SMALLSTACK */
  709. +
  710.   void
  711.   main( argc, argv )
  712.       int argc;
  713. ***************
  714. *** 23,29 ****
  715. --- 27,35 ----
  716.       {
  717.       FILE* ifp;
  718.       pixel pal[16];                      /* Degas palette */
  719. + #ifndef A_SMALLSTACK
  720.       short screen[ROWS*COLS/4];          /* simulates the Atari's video RAM */
  721. + #endif /* A_SMALLSTACK */
  722.       short i;
  723.       long j;
  724.       pixel* pixelrow;
  725. diff -bBcr pbmplus10dec91/ppm/picttoppm.c pbmamiga/ppm/picttoppm.c
  726. *** pbmplus10dec91/ppm/picttoppm.c      Wed Dec 11 01:56:08 1991
  727. --- pbmamiga/ppm/picttoppm.c    Tue Feb 18 15:54:58 1992
  728. ***************
  729. *** 66,72 ****
  730. --- 66,76 ----
  731.   struct opdef {
  732.           char* name;
  733.           int len;
  734. + #ifndef A_FORCEPROTO
  735.           void (*impl)();
  736. + #else /* A_FORCEPROTO */
  737. +         void (*impl)(int);
  738. + #endif /* A_FORCEPROTO */
  739.           char* description;
  740.   };
  741.  
  742. diff -bBcr pbmplus10dec91/ppm/pjtoppm.c pbmamiga/ppm/pjtoppm.c
  743. *** pbmplus10dec91/ppm/pjtoppm.c        Wed Dec 11 01:56:42 1991
  744. --- pbmamiga/ppm/pjtoppm.c      Tue Feb 18 15:56:20 1992
  745. ***************
  746. *** 14,19 ****
  747. --- 14,23 ----
  748.  
  749.   static char usage[] =  "[paintjetfile]";
  750.  
  751. + #ifdef A_FORCEPROTO
  752. + static int egetc( FILE *fp );
  753. + #endif /* A_FORCEPROTO */
  754. +
  755.   static int
  756.   egetc(fp)
  757.   FILE *fp;
  758. diff -bBcr pbmplus10dec91/ppm/ppmdither.c pbmamiga/ppm/ppmdither.c
  759. *** pbmplus10dec91/ppm/ppmdither.c      Wed Dec 11 01:56:46 1991
  760. --- pbmamiga/ppm/ppmdither.c    Tue Feb 18 16:00:38 1992
  761. ***************
  762. *** 13,18 ****
  763. --- 13,26 ----
  764.  
  765.   #include "ppm.h"
  766.  
  767. + #ifdef A_FORCEPROTO
  768. + static int dith_value( int y, int x, int size );
  769. + static void dith_matrix( int dim );
  770. + void dith_setup( int dim, int nr, int ng, int nb, pixel *ptab );
  771. + int dith_color( float r, float g, float b );
  772. + void dith_dither( int w, int h, register pixel *t, register pixel *i, register pixel *o );
  773. + #endif /* A_FORCEPROTO */
  774. +
  775.   #define NC 256                  /* Total number of colors               */
  776.   #define NS 256                  /* Max number of shades in primary      */
  777.  
  778. *** pbmplus10dec91/ppm/ppmdraw.h        Wed Dec 11 01:55:32 1991
  779. --- pbmamiga/ppm/ppmdraw.h      Thu Mar 26 14:42:19 1992
  780. ***************
  781. *** 86,92 ****
  782.   ** you can draw with the outline routines.
  783.   */
  784.  
  785. ! char* ppmd_fill_init( );
  786.   /* Returns a blank fillhandle.
  787.   */
  788.  
  789. --- 86,92 ----
  790.   ** you can draw with the outline routines.
  791.   */
  792.  
  793. ! char* ppmd_fill_init ARGS(( void ));
  794.   /* Returns a blank fillhandle.
  795.   */
  796.  
  797.  
  798. diff -bBcr pbmplus10dec91/ppm/ppmforge.c pbmamiga/ppm/ppmforge.c
  799. *** pbmplus10dec91/ppm/ppmforge.c       Wed Dec 11 01:56:58 1991
  800. --- pbmamiga/ppm/ppmforge.c     Tue Feb 18 18:24:04 1992
  801. ***************
  802. *** 99,104 ****
  803. --- 99,116 ----
  804.  
  805.   #define V     (void)
  806.  
  807. + #ifdef A_FORCEPROTO
  808. + static void fourn( float data[], int nn[], int ndim, int isign );
  809. + static void initgauss( unsigned int seed );
  810. + static double gauss(void);
  811. + static void spectralsynth( float **x, unsigned int n, double h );
  812. + static void initseed(void);
  813. + static void temprgb( double temp, double *r, double *g, double *b );
  814. + static void etoile( pixel *pix );
  815. + static void genplanet( float *a, unsigned int n );
  816. + static Boolean planet(void);
  817. + #endif /* A_FORCEPROTO */
  818. +
  819.   /*  Display parameters  */
  820.  
  821.   #define SCRSAT   255                  /* Screen maximum intensity */
  822. diff -bBcr pbmplus10dec91/ppm/ppmhist.c pbmamiga/ppm/ppmhist.c
  823. *** pbmplus10dec91/ppm/ppmhist.c        Wed Dec 11 01:55:58 1991
  824. --- pbmamiga/ppm/ppmhist.c      Tue Feb 18 16:01:08 1992
  825. ***************
  826. *** 32,38 ****
  827. --- 32,40 ----
  828.       colorhist_vector chv;
  829.       int argn, rows, cols, colors, i;
  830.       pixval maxval;
  831. + #ifndef A_FORCEPROTO
  832.       int countcompare();
  833. + #endif /* A_FORCEPROTO */
  834.       char* usage = "[ppmfile]";
  835.  
  836.       ppm_init( &argc, argv );
  837. diff -bBcr pbmplus10dec91/ppm/ppmtoacad.c pbmamiga/ppm/ppmtoacad.c
  838. *** pbmplus10dec91/ppm/ppmtoacad.c      Wed Dec 11 01:57:04 1991
  839. --- pbmamiga/ppm/ppmtoacad.c    Tue Feb 18 16:12:48 1992
  840. ***************
  841. *** 23,28 ****
  842. --- 23,34 ----
  843.   #include "ppm.h"
  844.   #include "ppmcmap.h"
  845.  
  846. + #ifdef A_FORCEPROTO
  847. + static void outrun(int colour, int ysize, int y, int xstart, int xend);
  848. + static void slideout(int xdots, int ydots, int ncolours, unsigned char *red,
  849. +                      unsigned char *green, unsigned char *blue);
  850. + #endif /* A_FORCEPROTO */
  851. +
  852.   #define TRUE     1
  853.   #define FALSE    0
  854.  
  855. diff -bBcr pbmplus10dec91/ppm/ppmtogif.c pbmamiga/ppm/ppmtogif.c
  856. *** pbmplus10dec91/ppm/ppmtogif.c       Wed Dec 11 01:55:50 1991
  857. --- pbmamiga/ppm/ppmtogif.c     Tue Feb 18 17:07:40 1992
  858. ***************
  859. *** 25,31 ****
  860. --- 25,35 ----
  861.   /*
  862.    * Pointer to function returning an int
  863.    */
  864. + #ifndef A_FORCEPROTO
  865.   typedef int (* ifunptr)();
  866. + #else /* A_FORCEPROTO */
  867. + typedef int (* ifunptr)( int, int );
  868. + #endif /* A_FORCEPROTO */
  869.  
  870.   /*
  871.    * a code_int must be able to hold 2**BITS values of type int, and also -1
  872. diff -bBcr pbmplus10dec91/ppm/ppmtoilbm.c pbmamiga/ppm/ppmtoilbm.c
  873. *** pbmplus10dec91/ppm/ppmtoilbm.c      Wed Dec 11 01:55:52 1991
  874. --- pbmamiga/ppm/ppmtoilbm.c    Fri Feb 07 15:54:20 1992
  875. ***************
  876. *** 39,45 ****
  877.       colorhist_vector chv;
  878.       unsigned char* raw_rowbuf;
  879.       unsigned char* coded_rowbuf;
  880. !     char* usage = "[-hamif] [ppmfile]";
  881.  
  882.       ppm_init( &argc, argv );
  883.  
  884. --- 39,45 ----
  885.       colorhist_vector chv;
  886.       unsigned char* raw_rowbuf;
  887.       unsigned char* coded_rowbuf;
  888. !     char* usage = "[-hamif|-hamforce] [ppmfile]";
  889.  
  890.       ppm_init( &argc, argv );
  891.  
  892. ***************
  893. *** 46,57 ****
  894.       argn = 1;
  895.       hamif = 0;
  896.  
  897. !     if ( argn < argc && argv[argn][0] == '-' && argv[argn][1] != '\0' )
  898.         {
  899. !       if ( pm_keymatch( argv[argn], "-hamif", 2 ) )
  900.             hamif = 1;
  901.         else if ( pm_keymatch( argv[argn], "-nohamif", 2 ) )
  902.             hamif = 0;
  903.         else
  904.             pm_usage( usage );
  905.         ++argn;
  906. --- 46,61 ----
  907.       argn = 1;
  908.       hamif = 0;
  909.  
  910. !     while ( argn < argc && argv[argn][0] == '-' && argv[argn][1] != '\0' )
  911.           {
  912. !         if ( pm_keymatch( argv[argn], "-hamif", 5 ) )
  913.               hamif = 1;
  914.           else if ( pm_keymatch( argv[argn], "-nohamif", 2 ) )
  915.               hamif = 0;
  916. +         else if ( pm_keymatch( argv[argn], "-hamforce", 5 ) )
  917. +             hamif = -1;
  918. +         else if ( pm_keymatch( argv[argn], "-nohamforce", 2 ) )
  919. +             hamif = 0;
  920.           else
  921.               pm_usage( usage );
  922.           ++argn;
  923. ***************
  924. *** 72,77 ****
  925. --- 76,90 ----
  926.  
  927.       pm_close( ifp );
  928.  
  929. +     if( hamif < 0 )
  930. +     {
  931. +         pm_message("hamforce option used - proceeding to write a HAM file");
  932. +         ham = 1;
  933. +         colors = 16;
  934. +         nPlanes = 6;
  935. +     }
  936. +     else
  937. +     {
  938.           /* Figure out the colormap. */
  939.           pm_message( "computing colormap..." );
  940.           chv = ppm_computecolorhist( pixels, cols, rows, MAX_COLORS, &colors );
  941. ***************
  942. *** 107,112 ****
  943. --- 120,126 ----
  944.               /* Make a hash table for fast color lookup. */
  945.               cht = ppm_colorhisttocolorhash( chv, colors );
  946.               }
  947. +     }
  948.  
  949.       /* Start off the ILBM with a FORM ILBM. */
  950.       cmapsize = colors * 3;
  951. ***************
  952. *** 250,268 ****
  953.             unsigned char *cp;
  954.  
  955.             mask = 1 << plane;
  956. !           cp = coded_rowbuf;
  957. !           *cp = 0;
  958.             for ( col = 0; col < cols; col++ )
  959.                 {
  960.                 int b;
  961.  
  962. !               b = ( raw_rowbuf[col] & mask ) ? 1 : 0;
  963. !               *cp |= b << ( 7 - col % 8 );
  964. !               if ( col % 8 == 7 )
  965.                     {
  966.                     cp++;
  967.                     *cp = 0;
  968.                     }
  969.                 }
  970.             fwrite( coded_rowbuf, RowBytes(cols), 1, stdout );
  971.             }
  972. --- 264,282 ----
  973.               unsigned char *cp;
  974.  
  975.               mask = 1 << plane;
  976. !             cp = coded_rowbuf-1;
  977.               for ( col = 0; col < cols; col++ )
  978.                   {
  979.                   int b;
  980.  
  981. !                 if( col % 8 == 0 )
  982.                       {
  983.                       cp++;
  984.                       *cp = 0;
  985.                       }
  986. +
  987. +                 b = ( raw_rowbuf[col] & mask ) ? 1 : 0;
  988. +                 *cp |= b << ( 7 - col % 8 );
  989.                   }
  990.               fwrite( coded_rowbuf, RowBytes(cols), 1, stdout );
  991.               }
  992. diff -bBcr pbmplus10dec91/ppm/ppmtopi1.c pbmamiga/ppm/ppmtopi1.c
  993. *** pbmplus10dec91/ppm/ppmtopi1.c       Wed Dec 11 01:56:36 1991
  994. --- pbmamiga/ppm/ppmtopi1.c     Tue Jan 28 18:32:48 1992
  995. ***************
  996. *** 18,23 ****
  997. --- 18,27 ----
  998.   #define MAXVAL 7
  999.   #define MAXCOLORS 16
  1000.  
  1001. + #ifdef A_SMALLSTACK
  1002. + static short screen[ROWS*COLS/4];  /* simulate the ST's video RAM */
  1003. + #endif /* A_SMALLSTACK */
  1004. +
  1005.   void
  1006.   main( argc, argv )
  1007.       int argc;
  1008. ***************
  1009. *** 31,37 ****
  1010. --- 35,43 ----
  1011.       int rows, cols, row, colors, i;
  1012.       register int col;
  1013.       pixval maxval;
  1014. + #ifndef A_SMALLSTACK
  1015.       short screen[ROWS*COLS/4];  /* simulate the ST's video RAM */
  1016. + #endif /* A_SMALLSTACK */
  1017.  
  1018.       ppm_init( &argc, argv );
  1019.  
  1020. diff -bBcr pbmplus10dec91/ppm/ppmtopj.c pbmamiga/ppm/ppmtopj.c
  1021. *** pbmplus10dec91/ppm/ppmtopj.c        Wed Dec 11 01:56:44 1991
  1022. --- pbmamiga/ppm/ppmtopj.c      Tue Feb 18 16:04:52 1992
  1023. ***************
  1024. *** 12,17 ****
  1025. --- 12,21 ----
  1026.  
  1027.   #include "ppm.h"
  1028.  
  1029. + #ifdef A_FORCEPROTO
  1030. + static int compress_row( unsigned char *op, unsigned char *oe, unsigned char *cp );
  1031. + #endif /* A_FORCEPROTO */
  1032. +
  1033.   /*
  1034.    * XXX: Only 8.5 x 11 paper
  1035.    */
  1036. diff -bBcr pbmplus10dec91/ppm/ppmtosixel.c pbmamiga/ppm/ppmtosixel.c
  1037. *** pbmplus10dec91/ppm/ppmtosixel.c     Wed Dec 11 01:56:50 1991
  1038. --- pbmamiga/ppm/ppmtosixel.c   Tue Feb 18 16:09:22 1992
  1039. ***************
  1040. *** 13,18 ****
  1041. --- 13,26 ----
  1042.   #include "ppm.h"
  1043.   #include "ppmcmap.h"
  1044.  
  1045. + #ifdef A_FORCEPROTO
  1046. + int WriteHeader(void);
  1047. + int WriteColorMap( colorhist_vector chv, int colors, pixval maxval );
  1048. + int WriteRawImage( colorhash_table cht, int rows, int cols );
  1049. + int WritePackedImage( colorhash_table cht, int rows, int cols );
  1050. + int WriteEnd(void);
  1051. + #endif /* A_FORCEPROTO */
  1052. +
  1053.   #define MAXVAL 100
  1054.   #define MAXCOLORS 256
  1055.  
  1056. diff -bBcr pbmplus10dec91/ppm/rawtoppm.c pbmamiga/ppm/rawtoppm.c
  1057. *** pbmplus10dec91/ppm/rawtoppm.c       Wed Dec 11 01:55:54 1991
  1058. --- pbmamiga/ppm/rawtoppm.c     Tue Feb 18 16:10:28 1992
  1059. ***************
  1060. *** 42,48 ****
  1061. --- 42,50 ----
  1062.       register gray* g2P;
  1063.       register gray* g3P;
  1064.       char* usage = "[-headerskip N] [-rowskip N] [-rgb|-rbg|-grb|-gbr|-brg|-bgr] [-interpixel|-interrow] <width> <height> [rawfile]";
  1065. + #ifndef A_FORCEPROTO
  1066.       double atof();
  1067. + #endif /* A_FORCEPROTO */
  1068.  
  1069.       ppm_init( &argc, argv );
  1070.  
  1071. diff -bBcr pbmplus10dec91/ppm/sldtoppm.c pbmamiga/ppm/sldtoppm.c
  1072. *** pbmplus10dec91/ppm/sldtoppm.c       Wed Dec 11 01:57:02 1991
  1073. --- pbmamiga/ppm/sldtoppm.c     Tue Feb 18 18:26:12 1992
  1074. ***************
  1075. *** 62,67 ****
  1076. --- 62,78 ----
  1077.           struct spoint t;              /* To point */
  1078.   };
  1079.  
  1080. + #ifdef A_FORCEPROTO
  1081. + static int extend( smallint ch );
  1082. + static int sli( void );
  1083. + static int slib( void );
  1084. + static void vscale( int *px, int *py );
  1085. + static void slider( void (*slvec)(struct svector *vec, int colour),
  1086. +                     void (*slflood)(struct spolygon *poly, int colour) );
  1087. + static void slidefind( char *sname, int dironly, int ucasen );
  1088. + static void draw( struct svector *vec, int colour );
  1089. + static void flood( struct spolygon *poly, int colour );
  1090. + #endif /* A_FORCEPROTO */
  1091.  
  1092.   static int ixdots, iydots;            /* Screen size in dots */
  1093.   static FILE *slfile;                  /* Slide file descriptor */
  1094. ***************
  1095. *** 147,154 ****
  1096. --- 158,170 ----
  1097.   */
  1098.  
  1099.   static void slider(slvec, slflood)
  1100. + #ifndef A_FORCEPROTO
  1101.     void (*slvec)();
  1102.     void (*slflood)();
  1103. + #else /* A_FORCEPROTO */
  1104. +   void (*slvec)(struct svector *vec, int colour);
  1105. +   void (*slflood)(struct spolygon *poly, int colour);
  1106. + #endif /* A_FORCEPROTO */
  1107.   {
  1108.       int i, rescale;
  1109.       unsigned char ubfr[4];            /* Utility character buffer */
  1110. diff -bBcr pbmplus10dec91/ppm/sputoppm.c pbmamiga/ppm/sputoppm.c
  1111. *** pbmplus10dec91/ppm/sputoppm.c       Wed Dec 11 01:56:40 1991
  1112. --- pbmamiga/ppm/sputoppm.c     Tue Jan 28 18:32:50 1992
  1113. ***************
  1114. *** 16,21 ****
  1115. --- 16,26 ----
  1116.   #define COLS 320
  1117.   #define MAXVAL 7
  1118.  
  1119. + #ifdef A_SMALLSTACK
  1120. + static pixel pal[ROWS][48];                /* Spectrum palettes, three per row */
  1121. + static short screen[ROWS*COLS/4];          /* simulates the Atari's video RAM */
  1122. + #endif /* A_SMALLSTACK */
  1123. +
  1124.   void
  1125.   main( argc, argv )
  1126.       int argc;
  1127. ***************
  1128. *** 22,29 ****
  1129. --- 27,36 ----
  1130.       char* argv[];
  1131.       {
  1132.       FILE* ifp;
  1133. + #ifndef A_SMALLSTACK
  1134.       pixel pal[ROWS][48];                /* Spectrum palettes, three per row */
  1135.       short screen[ROWS*COLS/4];          /* simulates the Atari's video RAM */
  1136. + #endif /* A_SMALLSTACK */
  1137.       int i, j;
  1138.       pixel* pixelrow;
  1139.       register pixel* pP;
  1140.